Skip to content

Content bootstrap step — startup reindex via SearchIndexBootstrapStep#18

Merged
hendrikebbers merged 3 commits into
mainfrom
feat/009-content-bootstrap-step
Jul 12, 2026
Merged

Content bootstrap step — startup reindex via SearchIndexBootstrapStep#18
hendrikebbers merged 3 commits into
mainfrom
feat/009-content-bootstrap-step

Conversation

@herbie-bot

Copy link
Copy Markdown
Collaborator

Summary

ContentBootstrapStep implements the library's SearchIndexBootstrapStep so the content index is populated at startup. It declares the target index (resolveIndex("content")) and provides a lazy documents() stream over all enabled sources via ContentIndexer.streamAllDocuments, with per-source fault isolation. The library MeilisearchBootstrapRunner discovers the step, batches the stream into Meilisearch, and toggles SearchReadinessState.

Spec

  • docs/specs/009-content-bootstrap-step/{design,behaviors,steps}.md

Test coverage

  • 4 scenarios (indexUid, enabled-only sources, laziness, failing-source isolation) via a real ContentIndexer + stub strategy (no mocks). Runner-owned behaviors (discovery, readiness flip) are delegated to the library and need a live Meilisearch. 94 tests total; spec-review and quality-review clean.

Closes #17

🤖 Generated with Claude Code

- ContentBootstrapStep implements the library SearchIndexBootstrapStep
  (@component, gated on meilisearch.enabled): indexUid() = resolveIndex
  ("content"); documents() lazily flatMaps ContentIndexer.streamAllDocuments
  over enabled sources, with per-source fault isolation. The library
  MeilisearchBootstrapRunner batches the stream and toggles readiness.
- ContentBootstrapStepTest (real ContentIndexer + stub strategy): indexUid,
  enabled-only sources, laziness, failing-source isolation. 94 tests green.
- steps.md; refresh CLAUDE.md.

Refs #17
@hendrikebbers hendrikebbers merged commit 56ae2b7 into main Jul 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Content bootstrap step — initial reindex via SearchIndexBootstrapStep

2 participants